home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / Goodies / Wiper / Wiper.cls < prev    next >
Text File  |  1996-11-14  |  3KB  |  80 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "Connect"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = True
  9. Attribute VB_Exposed = True
  10. Attribute VB_Description = "VB Debug Wiper"
  11. Option Explicit
  12. Implements IDTExtensibility
  13.  
  14. Private VBI As VBIDE.VBE
  15. Private mcbWiperButton As Office.CommandBarControl
  16. Private mcbWiperMenu As Office.CommandBarControl
  17. Private WithEvents WiperButtonHandler As CommandBarEvents
  18. Attribute WiperButtonHandler.VB_VarHelpID = -1
  19. Private WithEvents WiperMenuHandler As CommandBarEvents
  20. Attribute WiperMenuHandler.VB_VarHelpID = -1
  21.  
  22. Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant)
  23.   ' placeholder for this procedure so it doesn't get optimized out during compile
  24. End Sub
  25.  
  26. Private Sub IDTExtensibility_OnConnection(ByVal VBInst As Object, ByVal ConnectMode As VBIDE.vbext_ConnectMode, ByVal AddInInst As VBIDE.AddIn, custom() As Variant)
  27.     Set VBI = VBInst
  28. '// Create Toolbar Button On Standard Toolbar
  29.     Set mcbWiperButton = VBI.CommandBars("Standard").Controls.Add(1, , , 20)
  30.     mcbWiperButton.Enabled = False
  31.     Clipboard.SetData LoadResPicture(1000, 0)  '// Put image on Clipboard
  32.     mcbWiperButton.PasteFace
  33.     mcbWiperButton.ToolTipText = "Debug Wiper"
  34.     Set WiperButtonHandler = VBI.Events.CommandBarEvents(mcbWiperButton)
  35. '// Create Menu Item on Add-In's Menu
  36.     Set mcbWiperMenu = VBI.CommandBars("Add-Ins").Controls.Add
  37.     mcbWiperMenu.Enabled = False
  38.     mcbWiperMenu.PasteFace
  39.     mcbWiperMenu.Caption = "Debug &Wiper"
  40.     Set WiperMenuHandler = VBI.Events.CommandBarEvents(mcbWiperMenu)
  41. '// Enable The Wiper Controls
  42.     mcbWiperMenu.Enabled = True
  43.     mcbWiperButton.Enabled = True
  44. End Sub
  45.  
  46. Private Sub IDTExtensibility_OnDisconnection(ByVal RemoveMode As VBIDE.vbext_DisconnectMode, custom() As Variant)
  47. '// Disconnect Wiper Controls
  48.     mcbWiperButton.Delete
  49.     mcbWiperMenu.Delete
  50.     Set VBI = Nothing
  51.     Set mcbWiperButton = Nothing
  52.     Set mcbWiperMenu = Nothing
  53. End Sub
  54.  
  55. Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant)
  56.   ' placeholder for this procedure so it doesn't get optimized out during compile
  57. End Sub
  58.  
  59. Private Sub WiperButtonHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  60. '// Clear the Immediate Window By Sending Keystrokes Since We Don't Have a Debug.Clear() method to call
  61. '//
  62. '// Don't use SendKeys("^a") - <CTRL-A> Is Not Handled When No Projects Are Loaded On StartUp
  63. '//
  64.     Dim pWindow As VBIDE.Window
  65.     Set pWindow = VBI.Windows("Immediate")
  66.     If pWindow Is Nothing Then Exit Sub  '// Abort If The Window Is Not Found
  67.     If pWindow.Visible = True Then  '// Skip Clearing The Window If Window Is Not Visible - To Avoid Toggling The Window Just Clear It
  68.       pWindow.SetFocus
  69.       SendKeys ("^({Home})"), True
  70.       SendKeys ("^(+({End}))"), True
  71.       SendKeys ("{Del}"), True
  72.     End If
  73.     Set pWindow = Nothing
  74. End Sub
  75.  
  76. Private Sub WiperMenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  77. '// Use WiperButtonHandler_Click() To ReUse Code
  78.     Call WiperButtonHandler_Click(ByVal CommandBarControl, handled, CancelDefault)
  79. End Sub
  80.